package com.xbongbong.paas.service;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.pro.log.pojo.dto.FormSearchListDTO;
import com.xbongbong.pro.log.pojo.dto.OperateDetailLogDTO;
import com.xbongbong.pro.log.pojo.dto.OperateLogConditionDTO;
import com.xbongbong.pro.log.pojo.dto.OperateLogListDTO;
import com.xbongbong.pro.log.pojo.vo.FormSearchListVO;
import com.xbongbong.pro.log.pojo.vo.OperateDetailLogVO;
import com.xbongbong.pro.log.pojo.vo.OperateLogConditionVO;
import com.xbongbong.pro.log.pojo.vo.OperateLogListVO;

/**
 * 操作日志服务
 * @author kaka
 * @date 2019/1/22 20:12
 * @since v1.0
 * @version v1.0
 */
public interface OperateLogService {

    /**
     * 表单列表
     * @param formSearchListDTO 关联业务DTO
     * @return 表单VO
     * @throws XbbException 业务异常
     */
    FormSearchListVO getFormSearchList(FormSearchListDTO formSearchListDTO) throws XbbException;

    /**
     * 操作日志列表
     * @param operateLogListDTO 关联业务DTO
     * @return 关联业务VO
     * @throws XbbException 业务异常
     */
    OperateLogListVO list(OperateLogListDTO operateLogListDTO) throws XbbException;

    /**
     * 获取操作日志筛选条件
     * @param operateLogConditionDTO 关联业务DTO
     * @return 关联业务VO
     * @throws XbbException 业务异常
     */
    OperateLogConditionVO getCondition(OperateLogConditionDTO operateLogConditionDTO) throws XbbException;

    /**
     * 操作日志详情
     * @param operateDetailLogDTO
     * @return com.xbongbong.pro.log.pojo.vo.OperateLogDetailVO
     * @throws XbbException
     * @author zcp
     * @date 2019/6/24 22:26
     * @since v1.0
     * @version v1.0
     */
    OperateDetailLogVO detail(OperateDetailLogDTO operateDetailLogDTO) throws XbbException;
}
